﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Web;
using System.Web.Mvc;
using log4net;
using TheBullysStore.Models;
using TheBullysStore.Models.ModuloAdministracion.DepartamentoPeru;
using TheBullysStore.Models.ModuloAdministracion.DistritoPeru;
using TheBullysStore.Models.ModuloAdministracion.ProvinciaPeru;
using TheBullysStore.Models.ModuloVentas.Propiedad;


namespace TheBullysStore.Controllers.ModuloVenta
{
    public class PropiedadController : Controller
    {
        //
        // GET: /Propiedad/
        private static ILog log = LogManager.GetLogger(typeof(PropiedadController));
        private TheBullysStoreDB db = new TheBullysStoreDB();
        PropiedadFacade propiedadFacade = new PropiedadFacade();
        DepartamentoPeruFacade departamentoPeruFacade = new DepartamentoPeruFacade();
        ProvinciaPeruFacade provinciaPeruFacade = new ProvinciaPeruFacade();
        DistritoPeruFacade distritoPeruFacade = new DistritoPeruFacade();

        public ActionResult Index()
        {
            return View();
        }

        public ActionResult Propiedad()
        {
            return View();
        }
        public ActionResult RegistrarPropiedad()
        {
            return View();
        }

        public ActionResult BuscarPropiedad()
        {
            return View();
        }

        public ActionResult ImagenPropiedad()
        {
            return View();
        }

        [HttpPost]
        public JsonResult registrarPropiedad(PropiedadBean propiedad)
        {
            string conexion = propiedadFacade.RegistrarPropiedad(propiedad);
            if (conexion == "Bien") { 
                return Json(new {me= "Se ingreso correctamente la Propieda"});
            }
            else
            {
                return Json(new { me = "Existe un error en registrar la Propieda" });
            }
        }

        [HttpPost]
        public JsonResult buscarPropiedad(PropiedadBean propiedad)
        {
            List<PropiedadBean> listaPropiedad = propiedadFacade.ListarPropiedad(propiedad);

            return Json(new { listaPropiedad });
        }
        [HttpPost]
        public JsonResult exportarPropiedad(PropiedadBean propiedad)
        {
            string conexion = propiedadFacade.ExportarPropiedad(propiedad);

            if (conexion == "Bien")
            {
                return Json(new { me = "Se exportó correctamente "});
            }
            else
            {
                return Json(new { me = conexion });
            }
        }
        [HttpPost]
        public JsonResult modificarPropiedad(PropiedadBean propiedad)
        {
            List<PropiedadBean> listaPropiedad = propiedadFacade.ListarPropiedadMod(propiedad);
            return Json(new { listaPropiedad });
        }
        [HttpPost]
        public JsonResult eliminarPropiedad(PropiedadBean propiedad)
        {
            string conexion = propiedadFacade.EliminarPropiedad(propiedad);

            if (conexion == "Bien")
            {
                return Json(new { me = "Se eliminó correctamente " + propiedad.id_propiedad });
            }
            else
            {
                return Json(new { me = conexion });
            }
        }

        [HttpPost]
        public JsonResult cargarDepartamentos(DepartamentoPeruBean departamento)
        {
            try
            {
                List<DepartamentoPeruBean> listaDepartamentoPeru = departamentoPeruFacade.ListarDepartamentoPeru(departamento);

                return Json(new { listaDepartamentoPeru });
            }

            catch (Exception ex)
            {
                log.Error("CargarDepartamento - GET(EXCEPTION):", ex);
                return Json(new { listaDepartamentoPeru = "Ocurrió un error al cargar los Departamentos" });
            }

        }

        [HttpPost]
        public JsonResult cargarProvincias(DepartamentoPeruBean departamento)
        {
            try
            {
                List<ProvinciaPeruBean> listaProvinciaPeru = provinciaPeruFacade.ListarProvinciaPeru(departamento);

                return Json(new { listaProvinciaPeru });
            }
            catch (Exception ex)
            {
                log.Error("CargarProvincia - GET(EXCEPTION):", ex);
                return Json(new { listaProvinciaPeru = "Ocurrió un error al cargar las Provincias" });
            }
        }

        [HttpPost]
        public JsonResult cargarDistritos(ProvinciaPeruBean provincia)
        {
            try
            {
                List<DistritoPeruBean> listaDistritoPeru = distritoPeruFacade.ListarDistritoPeru(provincia);

                return Json(new { listaDistritoPeru });
            }

            catch (Exception ex)
            {
                log.Error("CargarDistrito - GET(EXCEPTION):", ex);
                return Json(new { listaDistritoPeru = "Ocurrió un error al cargar los Distritos" });
            }
        }

        [HttpPost]
        public JsonResult buscarPropiedadPersona(BusquedaPersona propiedad)
        {
            List<BusquedaPersona> listaPropiedad = propiedadFacade.ListarPropiedadPersona(propiedad);
            return Json(new { listaPropiedad });
        }

        [HttpPost]
        public JsonResult buscarPropiedadVendedor(BusquedaVendedor propiedad)
        {
            List<BusquedaVendedor> listaPropiedad = propiedadFacade.ListarPropiedadVendedor(propiedad);
            return Json(new { listaPropiedad });
        }


    }


}
